package cn.itcast.nems.studentrecord.dto.studentrecord;

import lombok.Data;

import java.time.LocalDateTime;

/**
 * <p>
 * 学籍流转明细
 * </p>
 *
 * @author liyong
 * @since 2023-11-21
 */
@Data
public class StudentRecordTransactionDTO {

    /**
     * 主键ID;UUID
     */
    private String id;

    /**
     * 新学籍ID
     */
    private String studentRecordId;

    /**
     * 参考单据类型;枚举值：订单｜ORDER、升级｜RENEWAL、转班｜TRANSFER、休学｜SUSPENSION、退学｜DROPOUT、待定班｜DELAY、结课｜FINAL等
     */
    private String referenceType;

    /**
     * 参考单据ID
     */
    private String referenceId;

    /**
     * 参考单据行ID
     */
    private String referenceLineId;

    /**
     * 班级ID
     */
    private Integer clazzId;

    /**
     * 班级名称
     */
    private String className;

    /**
     * 班级阶段
     */
    private Integer phaseNumber = 1;

    /**
     * 交易类型;枚举值：：1｜入班、-1｜出班
     */
    private Integer type;

    /**
     * 交易日期;此日期应为出入班日期
     */
    private LocalDateTime bizDate;

    /**
     * 实际应付金额;随参考单据上的实际应付金额
     */
    private Integer actualAmountDue;

    /**
     * 应服务天数;在出班时确定
     */
    private Integer serviceDays;

    /**
     * 结算天数/服务天数;在出班时确定
     */
    private Integer settlementDays;

    /**
     * 结算金额;在出班时确定，通常为“课耗金额”
     */
    private Integer settlementAmount;

    /**
     * 状态;枚举值：未生效|PENDING、已生效|VALID。注：只有报名订单会存在需要变更生效状态的情况。
     */
    private String state;
}
